package com.wanxi.dao.impl;

import com.wanxi.dao.CompanyDao;
import com.wanxi.entity.CompanyEntity;
import com.wanxi.util.GetSqlSession;

import java.util.List;

public class CompanyDaoImpl implements CompanyDao {
    @Override
    public int add(CompanyEntity companyEntity) {
//        String sql = "INSERT INTO `company` (" +
//                "`logo`, `phone`, `ad`, `net`," +
//                " `email`, `line_phone`, `version`, `address`, " +
//                "`is_show`, `enable`, `create_time`, `name`) VALUES (" +
//                "?, ?, ?, ?, " +
//                "?, ?, ?, ?," +
//                " ?, ?, now(), ?);";
//        List<Object> list = new ArrayList<>();
////        下面的集合的顺序应该和?的顺序或者和列名的顺序一致
//        list.add(companyEntity.getLogo());
//        list.add(companyEntity.getPhone());
//        list.add("");
//        list.add(companyEntity.getNet());
//        list.add(companyEntity.getEmail());
//        list.add(companyEntity.getLinePhone());
//        list.add(companyEntity.getVersion());
//        list.add(companyEntity.getAddress());
//        list.add(companyEntity.getEnable());
//        list.add(companyEntity.getEnable());
////        SimpleDateFormat
////        LocalDateTime
//        list.add(companyEntity.getName());
//        return JDBC.update(sql, list);

        return GetSqlSession.getSqlSession().insert("com.wanxi.dao.CompanyDao.add", companyEntity);
    }

    @Override
    public int delete(CompanyEntity companyEntity) {
//        String sql = "delete from company where id=?";
//        List<Object> list = new ArrayList<>();
//        list.add(companyEntity.getId());
//        return JDBC.update(sql, list);
        return GetSqlSession.getSqlSession().delete("com.wanxi.dao.CompanyDao.delete",companyEntity);
    }

    @Override
    public CompanyEntity findById(CompanyEntity companyEntity) {
//        String sql = "select * from company where id=" + companyEntity.getId();
//        CompanyEntity entity = new CompanyEntity();
//        ResultSet query = JDBC.query(sql);
//        try {
////            如果结果集有值，则进入while循环，如果没有，则不进行
//            while (query.next()) {
//                entity.setId(query.getInt("id"));
//                entity.setLogo(query.getString("logo"));
//                entity.setPhone(query.getString("phone"));
//                entity.setNet(query.getString("net"));
//                entity.setAddress(query.getString("address"));
//                entity.setLinePhone(query.getString("line_phone"));
//                entity.setVersion(query.getString("version"));
//                entity.setEmail(query.getString("email"));
//                entity.setCreateTime(query.getString("create_time"));
////                entity.setUpdateTime(query.getString("update_time"));
//                entity.setEnable(query.getInt("enable"));
//            }
//        } catch (SQLException e) {
//            e.printStackTrace();
//        }
//
//        return entity;
        return GetSqlSession.getSqlSession().selectOne("com.wanxi.dao.CompanyDao.findById",companyEntity);
    }

    @Override
    public List<CompanyEntity> findAll(CompanyEntity companyEntity) {
//        List<Object> list = new ArrayList<>();
//        String sql = " select * from company where true ";
//        if (!StringUtils.isEmpty(companyEntity.getPhone())) {
//            sql += " and  phone like '%" + companyEntity.getPhone() + "%' ";
////            sql += "and  phone like '%?%' ";
////            list.add(companyEntity.getPhone());
//        }
//        if (!StringUtils.isEmpty(companyEntity.getNet())) {
//            sql += " and net like '%" + companyEntity.getNet() + "%' ";
//        }
//        if (companyEntity.getStartId() != -1 && companyEntity.getEndId() != -1) {
//            sql += " and id between " + companyEntity.getStartId() + " and" + companyEntity.getEndId();
//        } else if (companyEntity.getStartId() != -1) {
//            sql += " and id >=" + companyEntity.getStartId();
//        } else if (companyEntity.getEndId() != -1) {
//            sql += " and id<= " + companyEntity.getEndId();
//        }
//
//        /**
//         * 模糊查询每一个都应该加分页查询,都放在sql最后
//         */
//        sql += " limit " + (companyEntity.getPage() - 1) * companyEntity.getLimit() + "," + companyEntity.getLimit() + "";
//
//        List<CompanyEntity> companyEntityList = new ArrayList<>();
//        ResultSet query = JDBC.query(sql);
//        try {
////            如果结果集有值，则进入while循环，如果没有，则不进行
//            while (query.next()) {
//                CompanyEntity entity = new CompanyEntity();
//                entity.setId(query.getInt("id"));
//                entity.setLogo(query.getString("logo"));
//                entity.setPhone(query.getString("phone"));
//                entity.setNet(query.getString("net"));
//                entity.setAddress(query.getString("address"));
//                entity.setLinePhone(query.getString("line_phone"));
//                entity.setVersion(query.getString("version"));
//                entity.setEmail(query.getString("email"));
//                entity.setCreateTime(query.getString("create_time"));
////                entity.setUpdate_time(query.getString("update_time"));
//                entity.setEnable(query.getInt("enable"));
//                companyEntityList.add(entity);
//            }
//        } catch (SQLException e) {
//            e.printStackTrace();
//        }
//
//        return companyEntityList;
        return GetSqlSession.getSqlSession().selectList("com.wanxi.dao.CompanyDao.findAll",companyEntity);
    }


    @Override
    public int update(CompanyEntity companyEntity) {
//        String sql = " update  company set ";
//        if (!StringUtils.isEmpty(companyEntity.getPhone())) {
//            sql += "phone ='" + companyEntity.getPhone() + "', ";
//        }
//        if (!StringUtils.isEmpty(companyEntity.getNet())) {
//            sql += "net ='" + companyEntity.getNet() + "', ";
//        }
//
//        sql += " remark='' where id=" + companyEntity.getId();
//        return JDBC.update(sql, new ArrayList<>());
        return GetSqlSession.getSqlSession().update("com.wanxi.dao.CompanyDao.update",companyEntity);
    }

    @Override
    public int count(CompanyEntity companyEntity) {
//        String sql = "select count(*) count from company where 1=1";
//        if (!StringUtils.isEmpty(companyEntity.getPhone())) {
//            sql += " and  phone like '%" + companyEntity.getPhone() + "%' ";
////            sql += "and  phone like '%?%' ";
////            list.add(companyEntity.getPhone());
//        }
//        if (!StringUtils.isEmpty(companyEntity.getNet())) {
//            sql += " and net like '%" + companyEntity.getNet() + "%' ";
//        }
//        if (companyEntity.getStartId() != -1 && companyEntity.getEndId() != -1) {
//            sql += " and id between " + companyEntity.getStartId() + " and" + companyEntity.getEndId();
//        } else if (companyEntity.getStartId() != -1) {
//            sql += " and id >=" + companyEntity.getStartId();
//        } else if (companyEntity.getEndId() != -1) {
//            sql += " and id<= " + companyEntity.getEndId();
//        }
//
//        ResultSet query = JDBC.query(sql);
//        try {
//            while (query.next()) {
//                return query.getInt("count");
//            }
//        } catch (SQLException e) {
//            e.printStackTrace();
//        }
//        return 0;
        return GetSqlSession.getSqlSession().selectOne("com.wanxi.dao.CompanyDao.count",companyEntity);
    }
}
